perm filename SOLITA.LSP[W79,JMC] blob
sn#421835 filedate 1979-02-28 generic text, type C, neo UTF8
COMMENT ā VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 (COMMENT AN IMPUTATION IS A LiST OF PAIRS (<CARD> DOT <FINAL PILE>))
C00003 00003 (COMMENT RANK IN FINAL PILE FUNCTIONS)
C00004 ENDMK
Cā;
(COMMENT AN IMPUTATION IS A LiST OF PAIRS (<CARD> DOT <FINAL PILE>))
(COMMENT PLAYS[U POS] WHERE U IS A LIST OF CARDS GIVES THE POSSIBLE imputations
of THIS SET OF CARDS IN THE POSITION)
(DEFUN PLAYS (U POS)
(IF (NULL U)
'(NIL)
(MAPAPPEND (function (LAMBDA (W)
(MAPAPPEND (function (LAMBDA (Z)
(PLAYS1 (car u) Z W POS)))
'(1. 2. 3. 4.))))
(PLAYS (CDR U) POS))))
(DEFUN MAPAPPEND (FUN U)
(IF (NULL U)
NIL
(APPEND (FUNCALL FUN (CAR U)) (MAPAPPEND FUN (CDR U)))))
(defun plays1 (card pile imput pos)
)
(COMMENT RANK IN FINAL PILE FUNCTIONS)
(DEFUN RANK (PILE N) (COND ((EQUAL PILE 1) N)
((EQUAL PILE 2)
(IF (DIVIDES 2. N) (QUOTIENT N 2.) (QUOTIENT (+ N 13.) 2.)))
((EQUAL PILE 2)
(COND ((DIVIDES 3. N) (QUOTIENT N 3.))
((DIVIDES 3. (ADD1 N)) (QUOTIENT (+ N 13.) 3.))
(T (QUOTIENT (+ N 26.) 3.))))
((EQUAL PILE 2)
(COND ((DIVIDES 4. N) (QUOTIENT N 4.))
((DIVIDES 4. (ADD1 N)) (QUOTIENT (+ N 13.) 4.))
((DIVIDES 4. (+ 2. N)) (QUOTIENT (+ N 26.) 4.))
(T (QUOTIENT (+ N 39.) 4.))))
))
(DEFUN DIVIDES (M N) (ZEROP (REMAINDER N M)))